package com.t.bricks.bussiness.db.dao.customer;

import com.t.bricks.bussiness.db.dao.common.BaseDao;
import com.t.bricks.bussiness.db.entity.customer.Customer;
import com.t.bricks.bussiness.db.entity.customer.CustomerAccount;
import com.t.bricks.model.MsgEmity;

public interface CustomerDao<T> extends BaseDao<T> {

	/**
	 * 删除
	 * @Param uId 记录编号
	 * @return MsgEmity
	 */
	MsgEmity del(String uId);
	
	/**
	 * 添加
	 * @Param customer
	 * @Param customerAccount
	 * @return MsgEmity
	 */
	MsgEmity addCustom(Customer customer, CustomerAccount customerAccount);
	
	/**
	 * 修改密码
	 * @param uId
	 * @param sOldPass
	 * @param sNewPass
	 * @param sAesPass
	 * @param iVersion
	 * @param sModifieder
	 * @return
	 */
	MsgEmity editPass(String uId, String sOldPass, String sNewPass,
			String sAesPass, int iVersion, String sModifieder);
	
	/**
	 * 修改手势密码
	 * @param uId
	 * @param sOldPass
	 * @param sNewPass
	 * @param iVersion
	 * @param sModifieder
	 * @return
	 */
	MsgEmity editSignPass(String uId, String sOldPass, String sNewPass,
			int iVersion, String sModifieder);
	
	/**
	 * 根据手机号(sNo)与微信关注号查询AES密码
	 * @param sNo 手机号
	 * @param sWeChatOpenId 微信关注号
	 * @return
	 */
	MsgEmity findAesPass(String sNo, String sWeChatOpenId);
	
	/**
	 * 根据手机号(sNo)判断是否与关注号进行绑定
	 * @param sNo 手机号
	 * @return
	 */
	MsgEmity hasOpenId(String sNo);

	/**
	 * 绑定关注号
	 * @param uId 记录编号
	 * @param sOpenId 关注号
	 * @param sPass 当前密码
	 * @param iType 类型(1:微信)
	 * @return
	 */
	MsgEmity bindingOpenId(String uId, String sOpenId, Integer iType, String sAesPass);
	
	/**
	 * 设置微信用户统一标识
	 * @param uId 用户编号
	 * @param wechatid 微信用户统一标识
	 * @return
	 */
	MsgEmity setWechatid(String uId, String wechatid);
	
	/**
	 * 根据微信用户统一标识获取电话信息
	 * @param sWechatUid 微信用户统一标识
	 * @return
	 */
	MsgEmity getNoByWechatUid(String sWechatUid);
	
	/**
	 * 判断微信用户唯一标识是否已经绑定
	 * @param sWechatUid 微信用户统一标识
	 * @return 返回手机号
	 */
	MsgEmity hasWechatUid(String sWechatUid);
	
	/**
	 * 根据微信用户唯一标识查询AES密码
	 * @param sWechatUid 微信用户统一标识
	 * @return 返回AES密码
	 */
	MsgEmity findAesPassByWechatUid(String sWechatUid);
	
}
